又来?又一个仪表,LVGL『Line meter仪表控件』介绍

您所在的位置:网站首页 scale range scope rank区别 又来?又一个仪表,LVGL『Line meter仪表控件』介绍

又来?又一个仪表,LVGL『Line meter仪表控件』介绍

2023-09-18 09:06| 来源: 网络整理| 查看: 265

一. LVGL GUI仪表控件的概念

线表对象由一些绘制比例的径向线组成。设置线表的值将按比例更改比例线的颜色。

二. LVGL GUI仪表小部件和样式

线表只有一个主要部分,称为 LV_LINEMETER_PART_MAIN 。它使用所有典型的背景属性绘制矩形或圆形背景,并使用 line 和 scale 属性绘制比例线。活动行(与当前值的较小值相关)从 line_color 变为 scale_grad_color。最后一行(当前值之后)设置为 scale_end_color 颜色。

三. LVGL GUI仪表控件的使用 1. 设置值(Set value)

用这个函数来设置仪表的新值lv_linemeter_set_value(linemeter, new_value),我们来写个程序验证下,创建两个仪表控件,一个是默认不设置值,一个设置为80

代码如下:

void lvgl_line_meter_set_value_test(void) { /*Create a line meter */ lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter1, 150, 150); lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter2, 400, 150); lv_linemeter_set_value(lmeter2, 80); }

2. 范围跟角度(Range and Angles)

用这个函数来设置值得范围lv_linemeter_set_range(linemeter, min, max),默认是[0:100]

用这个函数来设置角度跟线的数量lv_linemeter_set_scale(linemeter, angle, line_num),默认220度跟18跟线,官网说31是有问题的

下面我们来写一个程序验证下,一共创建3个,最左边的是默认的,中间的范围设置为[0:200],设置值为80,最右边的设置角度是360,36跟线,设置值为80,代码如下:

void lvgl_line_meter_range_angle_test(void) { /*Create a line meter */ lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter1, 150, 150); lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter2, 400, 150); lv_linemeter_set_range(lmeter2, 0, 200); lv_linemeter_set_value(lmeter2, 80); lv_obj_t* lmeter3 = lv_linemeter_create(lv_scr_act(), NULL); lv_linemeter_set_scale(lmeter3, 360, 36); lv_obj_set_pos(lmeter3, 650, 150); lv_linemeter_set_value(lmeter3, 80); }

3. 角度偏移(Angle offset)

用这个lv_linemeter_set_angle_offset角度偏移,我们写个程序验证下

void lvgl_line_meter_angle_offset_test(void) { /*Create a line meter */ lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter1, 150, 150); lv_linemeter_set_value(lmeter1, 80); lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter2, 400, 150); lv_linemeter_set_value(lmeter2, 80); lv_linemeter_set_angle_offset(lmeter2,90); } 4. 镜面(Mirror)

用这个来设置镜面lv_linemeter_set_mirror(linemeter, true/false)

void lvgl_line_meter_mirror_test(void) { /*Create a line meter */ lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter1, 150, 150); lv_linemeter_set_value(lmeter1, 80); lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL); lv_obj_set_pos(lmeter2, 400, 150); lv_linemeter_set_value(lmeter2, 80); lv_linemeter_set_mirror(lmeter2, true); }

好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3